Programiranjem rešavamo realne probleme, a u realnom svetu često ne odlučujemo samo da li nešto da uradimo ili ne, već često biramo koju od dve stvari treba uraditi. Tako je i u poslednjem primeru koji smo uradili u lekciji "Uslovno izvršavanje".
Ovaj program će ili izvršiti liniju koraka = J - P; ili liniju koraka = P - J; jer je tačno jedan uslov zadovoljen. Drugi uslov je negacija prvog zato što, ako je uslov J > P tačan, uslov !(J > P) će biti netačan i obrnuto.
Ovako nešto se često javlja u programiranju - dva dela programa gde se svaki deo izvršava uslovno, a uvek se izvršava jedan od ta dva dela i nikada se ne izvršavaju oba. Ovakvo uslovno izvršavanje se toliko često javlja da postoji posebna struktura koja ga opisuje.
Opisana struktura se zove if-else i koristi se u sledećem programskom kodu.
static void Main(string[] args) { int J, P; Console.WriteLine("Unesite dva broja: "); Console.WriteLine("koliko Miki treba do Jocine i"); Console.WriteLine("koliko Miki treba do Perine kuce:"); J = int.Parse(Console.ReadLine()); P = int.Parse(Console.ReadLine()); int koraka = 0; if (J > P) { koraka = J - P; } if (!(J > P)) { koraka = P - J; } Console.WriteLine(koraka); }
Posle if strukture koja nam je već poznata piše se ključna reč else, otvorena vitičasta zagrada, a zatim naredbe koje se izvršavaju samo kada uslov nije tačan, i na kraju zatvorena vitičasta zagrada.
Primetimo da grananje nije ništa suštinski novo - i dalje se bavimo samo uslovnim izvršavanjem - ali nam olakšava i skraćuje pisanje (i izvršavanje) programa.
Na engleskom jeziku "if" znači ako, a "else" znači inače. Ovaj prevod nam omogućava da bolje razumemo ovaj koncept. Deo posle ključne reči if se izvršava ako je uslov tačan, inače se izvršava deo posle ključne reči else.